1. Technical Field
This invention generally relates to electrical computers and data processing and more specifically relates to graphical user interfaces.
2. Background Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Modern computer systems vary in their design and architecture, with many different models available to achieve the desired combination of speed, power, and efficiency for any given computing environment.
Computer systems typically include operating system software that controls the basic function of the computer, and one or more software applications that run under the control of the operating system to perform desired tasks. For example, an IBM mainframe computer may run the OS/390 operating system, and under the control of the operating system, a user may execute an application program, such as accounting software.
Computer software has evolved to take advantage of the higher performance of computer hardware. One popular software enhancement is the Graphical User Interface (GUI). Earlier generations of interactive user interfaces were not graphical; instead, users typed in commands onto the next available line of an otherwise blank computer screen. To perform any computer task using a command-line interface, users had to learn the precise syntax of each associated command. An example of a typical command-line interface is the DOS operating system. On the other hand, GUI users perform computer tasks with a simple point and click of a computer mouse on pull-down menus, buttons, scroll bars, and pictures called icons. Executing commands via point-and-click graphical tools eliminates the time consuming need to learn and manually-type in long, unfriendly commands.
Most computer programs now use GUI""s, which provide the visual appeal of full-screen formatting. More important than looks, however, are the GUI""s graphical tools, which facilitate the operation of computer software. As a result, non-technical people, who might have shied away from using computer applications in the generation of command-line interfaces, are more apt to use computer software equipped with GUI""s. The benefits of a GUI, however, correlate to how well the GUI eliminates the need for users to learn and manually type in long, unfriendly commands.
For instance, some applications, despite having a GUI, still require users to learn and type in precise command syntax. Applications that allow users to retrieve information from databases are an example. The commands associated with database tasks are not easily performed using point-and-click graphical tools. Instead, a user must construct expressions which typically name database fields and values in those fields. Since field names and values vary with each database, GUI""s cannot typically be programmed to perform database tasks with merely pointing and clicking. Thus, because the range of tasks that users perform on databases varies greatly, a GUI in itself does not eliminate the need for users to build expressions to perform database tasks.
Current designs for GUI""s used to perform database tasks do eliminate some of the typing required to build expressions. Expression building using current GUI designs, however, requires that users know the syntax of the expression they are building. Without knowing function names, parameter lists, and syntax for conjunctively and disjunctively combining clauses, users of the current GUI designs cannot build the expressions necessary to perform database tasks.
Because current expression builder GUI designs provide no guidance in how to build expressions, users are not alerted about syntactical errors they might make while using the GUI. A user can spend significant time assembling a multi-lined, complex expression unaware of the extent to which it is valid, or invalid. After an expression has been formulated using current GUI designs, the underlying database software must check the validity of the expression by parsing the syntax. If parsing routines detect syntactical errors, then the user requested database task cannot be performed. This process can be frustrating for non-technical users.
Therefore, a disadvantage of the current expression builder GUI designs is that they require users to have knowledge of how to build a syntactically valid expression. If the user does not know precise syntax rules required for the database task they are trying to perform, the expression built using current GUI designs will likely be invalid. Another disadvantage of current expression builder designs is that they require the underlying software to parse the syntax of any expression built using the. GUI. This added programming requirement translates into higher industry costs.
Software that performs database tasks, using a GUI, can put critically important information at the fingertips of any computer user. Without a GUI design that allows users to build expressions, without needing to know anything about the syntactical requirements of the expressions they are building, fewer users will harness the powerful information available in data sources. As a result, many computer users who could greatly benefit from such information will not be able to perform the associated computer tasks themselves.
According to a preferred embodiment of the present invention, a method and an apparatus for a user-friendly expression builder GUI is disclosed. The preferred embodiment GUI design enables users to construct syntactically valid expressions, without any knowledge of expression syntax.
The preferred embodiment provides generic expressions, which serve as starting points in expression building. Each generic expression is a syntactically correct expression containing generic parameters. The GUI user customizes the syntactically correct generic expression, by replacing the generic parameters with parameters specific to the database task at hand. The preferred embodiment provides lists of such specific parameters, including lists of field names and constants, which are selected to build the expression.
The present invention eliminates the need to know the precise expression syntax rules associated with the computer tasks that users want to perform. Syntactically correct generic expressions are already constructed for the user. The present invention therefore provides a user-friendly expression builder GUI which is simple to understand and learn. The present invention also eliminates the need for the database software underlying the expression builder GUI to parse the syntax of expressions formulated using the GUI. Thus, the present invention simplifies the programming requirements associated with database software, which translates into lower industry costs.
What has been described in this summary, as well as other objects, features, and advantages of the invention will be apparent from the following more particular description of the preferred embodiments of the invention, as illustrated in the accompanying drawings.